#ifndef INTERFAZENCRIPTACION_H_
#define INTERFAZENCRIPTACION_H_

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string>
#include <limits>
#include <vector>
#include "../Archivos/Configuracion.h"
#include "../Encriptacion/RSA.h"
#include "../Encriptacion/RomperRSA.h"
#include "../Entidades/Administrador.h"
#include "../Manejadores/ManejadorAdministrador.h"
#include "../Manejadores/ManejadorVotante.h"
#include "../Encriptacion/Vigenere.h"

using namespace std;
using namespace Encriptacion;
using namespace Entidades;
using namespace Manejadores;

namespace Interfaces{

class InterfazEncriptacion {

private:
	Configuracion* config;
	int opcionElegida;
	ManejadorAdministrador* manejadorAdministrador;
	ManejadorVotante* manejadorVotante;
	vector<Administrador*>* administradores;
	int numeroAdministradorElegido;

	void listarAdministradores(vector<Administrador*>* administradores);

public:

	InterfazEncriptacion();

	void mostrarMenuParaEncriptar();

	void mostrarMenuParaDesencriptar(string admin);

	void mostrarMenuParaRomperRSA();

	void mostrarMenuEncriptarVigenere();

	void mostrarMenuDesencriptarVigenere();

	virtual ~InterfazEncriptacion();
};

}

#endif
